﻿using Cofe.Core.Property;
using Cofe.IO;
using System;
using System.Collections.Generic;
using System.ComponentModel.Composition;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Cofe.Core.Implements
{
    [ServicePriority(ServicePriorityAttribute.DefaultPriority_COFEIO)]
    [Export(typeof(ICofeService))]
    public class FileSystemInfoPropertyDefinitions : PropertyDefinitionBase<FileSystemInfoProperties>
    {       
        public FileSystemInfoPropertyDefinitions() { }
        public FileSystemInfoPropertyDefinitions(params object[] supportedProperties) : base(supportedProperties) { }
    }

    [ServicePriority(ServicePriorityAttribute.DefaultPriority_COFEIO)]
    [Export(typeof(ICofeService))]
    public class DirectoryInfoPropertyDefinitions : PropertyDefinitionBase<DirectoryInfoProperties>
    {
        public DirectoryInfoPropertyDefinitions() { }
        public DirectoryInfoPropertyDefinitions(params object[] supportedProperties) : base(supportedProperties) { }
    }

    [ServicePriority(ServicePriorityAttribute.DefaultPriority_COFEIO)]
    [Export(typeof(ICofeService))]
    public class FileInfoPropertyDefinitions : PropertyDefinitionBase<FileInfoProperties>
    {
        public FileInfoPropertyDefinitions() { Expressions = new FileInfoExpressionDefinitions(); }
        public FileInfoPropertyDefinitions(params object[] supportedProperties) : base(supportedProperties)
        { Expressions = new FileInfoExpressionDefinitions(); }
    }


    [ServicePriority(ServicePriorityAttribute.DefaultPriority_COFEIO)]
    [Export(typeof(ICofeService))]
    public class FileTypeInfoPropertyDefinitions : PropertyDefinitionBase<FileTypeInfoProperties>
    {
        public FileTypeInfoPropertyDefinitions() { }
        public FileTypeInfoPropertyDefinitions(params object[] supportedProperties) : base(supportedProperties) { }
    }

}
